package jsp;

import util.CookieUtil;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author 石小俊
 * 入口程序
 * 用户在访问的时候不会直接访问login.jsp
 * 而是统一访问当前这个Serlvet,即/showMain
 * 当用户进行访问的时候
 * 服务器会判断当前Cookie中是否存在username与password的数据
 * 如果存在
 * 判断当前Cookie中保存的username的值与password的值是否正确
 * 如果正确,直接进入主页main.jsp
 * 如果不正确,页面将跳转到login.jsp,用户在login.jsp中进行登录
 * 如果不存在
 * 页面将跳转到login.jsp,用户在login.jsp中进行登录
 */
@WebServlet("/showMain")
public class ShowMainServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 从Cookie中取出用户名与密码
        String username = CookieUtil.findByName("username", req);
        String password = CookieUtil.findByName("password", req);
        // 当取到了,且用户名为admin,密码为123456时
        if ("admin".equals(username) && "123456".equals(password)) {
            // 表示Cookie存在用户名与密码,且正确
            // 此时可以直接进入主页,不需要登录
            req.getRequestDispatcher("/jsp/main.jsp").forward(req, resp);
            return;
        }
        // 如果没有进入分支语句,说明要么Cookie中没有保存用户名与密码,要么保存的不正确
        // 此时需要重新登录
        req.getRequestDispatcher("/jsp/login.jsp").forward(req, resp);
    }
}
